JavaScript algorithm